﻿using Estsh.Core.Model.Extend.Models;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Repositories;
using System.Collections; 

namespace Estsh.Core.Wms.IRepositories
{
    public interface IMovementManageRepository : IBaseRepository<WmsMoveHeader_Extend>
    {
        public Hashtable getMoveHeaderListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy);
        public Hashtable getMoveDetailListByPage(string strWhere);
        public Hashtable getMoveSnListByPage(string strWhere);
        public Hashtable onBarcodeGenerator(string orderNo);
        public List<KeyValueResult> GetErpwarehouse();
        public List<KeyValueResult> GetMoveOrderType();
        public List<KeyValueResult> GetFedbatchType();
        public List<KeyValueResult> GetFedbatchMethods();
        public List<KeyValueResult> GetMoveOrderStatus();
        public List<KeyValueResult> getSelectFactory();
        public List<KeyValueResult> getSelectWarehouse();
        public List<SysWarehouse> getSelectWarehouse(string warehouseid);
        public List<SysZone> getSelectZone(string zoneid);
        public List<KeyValueResult> getSelectZone();
        public List<SysLocate> getSelectLocate2(string locateid);
        public List<KeyValueResult> getSelectVendor();
        public List<SysVendor> getSelectVendor(string vendorId);
        public List<KeyValueResult> GetPart(int type);
        public List<SysPart> GetPart(int type,string PartNo);
        public List<SysPart> GetPartNoInfo(string part_no);
        public List<SysPart> GetPartNoInfoByPartNo(string part_no);
        public List<SysPart> GetPartSpecInfo(string partSpec);
        public List<SysPart> GetPartSpecInfoByPartSpec(string partSpec);
        public bool saveMovementManage(WmsMoveHeader_Extend htParams, IList<WmsMoveDetail_Extend> htDetailParams);
        public bool onClose(String ids, String empId);
        public bool EnableData(String ids);
        public bool DisableData(String ids);

        public List<MesWorkOrder> GetWorkRefOrderNo(string refOrderNo, string orderType);
        public List<MesWorkOrder> GetWorkOrderInfo(string refOrderNo);
        public List<SysZone> getSelectZone2(string zoneid);

        public List<KeyValueResult> getSelectLocate(int zoneId);

    }
}
